home *** CD-ROM | disk | FTP | other *** search
-
- regc(0, "COMBINED_XFORM")
-
- regc(4, "DIRECTIONAL_DIR_MS") // should be light
- regc(5, "CAMERA_POS_MS")
-
- regc(12, "FOG_PARAMS")
-
- regc(13, "TEXTURE2_XFORM")
-
- vshader("
-
- #define point v0
- #define normal v1
- #define tangent v2
- #define tcoord v3
-
- #define xform c0
-
- #define ldir c4
- #define cpos c5
- #define fogp c12
-
- #include <fog.inc>
-
- vs_1_1
-
- dcl_position point
- dcl_normal normal
- dcl_tangent tangent
- dcl_texcoord tcoord
-
-
- def c64, 0, 0, 0, 0
-
- ; light dir
- mov r0, ldir
-
- ; eye dir
- sub r1, cpos, point
-
-
- ; calc tangent space basis, binormal = cross( normal, tangent )
- mov r2, normal
- mul r3, r2.zxyw, tangent.yzxw;
- mad r3, r2.yzxw, tangent.zxyw, -r3
-
- ; transform light dir and eye dir into tanget space
- dp3 oT1.x, tangent, r0
- dp3 oT1.y, r3, r0
- dp3 oT1.z, normal, r0
-
- dp3 oT2.x, tangent, r1
- dp3 oT2.y, r3, r1
- dp3 oT2.z, normal, r1
-
-
- ; output texcoords for color and bump map
- mov oT0, tcoord
- m4x4 oPos, point, xform
-
- ;clouds
- dp4 oT3.x, point, c13
- dp4 oT3.y, point, c14
-
-
- // fog
- dp4 r0.x, point, c2
- FOG(r0.x, fogp, r1, c64.x)
-
- ")
-
-